CalendarGcDateTimeCellType.SideButtonsプロパティを使用します。
ボタンの追加と削除
セルの左右両端にはサイドボタンとして自由にボタンを配置し機能を割り付けることができます。

セルにボタンを追加するには、
SideButtonsプロパティが参照する
SideButtonCollectionクラスを使用します。SideButtonCollectionクラスは、セルに追加するボタンオブジェクトのコレクションで、セルに追加可能なサイドボタンを追加、削除するためのメソッドを提供します。
セルには次の4種類のボタンオブジェクトを追加できます。
- DropDownButton(ドロップダウンボタン)

下向きの矢印が描かれたボタンです。主にドロップダウンウィンドウを表示するために用いられます。
- SpinButton(スピンボタン)

上下それぞれに矢印が描かれた2つのボタンが組み合わされたボタンです。主にセル内の値を増減するために用いられます。
CalendarGcDateTimeCellTypeでは、
Spinプロパティが参照する
DateSpinオブジェクトにより、スピン機能の動作を設定することができます。DateSpinクラスでは次のプロパティを設定できます。
- AllowSpinプロパティ (スピン機能を有効にするかどうか設定します。)
- Incrementプロパティ (スピン時のフィールドの値の増減量を設定します。)
- IncrementValueプロパティ (スピンアクション時の値の増減量を設定します。)
- SpinModeプロパティ (アクティブなフィールドの値かセルの値を増減するかを設定します。)
- SpinOnKeysプロパティ (キーの押下によって値の増減を行うかどうか設定します。)
- SpinOnWheelプロパティ (マウスのホイールによって値の増減やドロップダウンカレンダーの変更を行うかどうか設定します。)
- Wrapプロパティ (スピン時に値の増減を有効範囲内でループさせるかどうか設定します。)
- SideButton(サイドボタン)

標準のButtonコントロールと同じような外観を持つボタンです。ボタン上にはイメージとテキストを設定することができます。また、
CheckOnClickプロパティを使用するとチェックボタンとして機能させることもできます。
- SymbolButton(シンボルボタン)

SideButtonと同様、標準のButtonコントロールと似た外観を持ちますが、提供されたイメージの中からボタン上に表示する画像を設定することができます。イメージは、
Symbolプロパティを使用して設定し、
SymbolDirectionプロパティを使用してイメージの向きを設定することができます。
シンボルボタンにはテキストは表示できません。
ボタンの追加や削除を行うには、デザイナのプロパティウィンドウから開かれるサイドボタン コレクション エディタから行うことができます。
また、コードでセルにボタンを追加するには、SideButtonCollectionオブジェクトのAddまたはAddRangeメソッドを使用します。
以下は、Addメソッドを使用して CalendarGcDateTimeCellTypeにスピンボタンを追加する例です。
Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan
Dim today As DateTime = DateTime.Today
Dim GcDateTimeCellType As New InputManCell.CalendarGcDateTimeCellType()
' スピンボタンを追加
GcDateTimeCellType.SideButtons.Add(New InputManCell.SpinButton())
GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = GcDateTimeCellType
GcCalendarGrid1.ScrollIntoView(today)
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan;
var today = DateTime.Today;
var gcDateTimeCellType = new InputManCell.CalendarGcDateTimeCellType();
// スピンボタンを追加
gcDateTimeCellType.SideButtons.Add(new InputManCell.SpinButton());
gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = gcDateTimeCellType;
gcCalendarGrid1.ScrollIntoView(today);
追加したボタンを削除するには、SideButtonCollectionクラスのRemoveメソッドまたは、RemoveAtメソッドを使用します。また、Clearメソッドでコレクションに追加されたすべてのボタンをクリアすることができます。
次のコードは、RemoveAtメソッドを使用してコレクションの先頭に追加されたボタンを削除する例です。
このサンプルでは、テンプレートの Row セクションにCalendarGcDateTimeCellTypeが配置されていることを前提とします。
Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan
Dim GcDateTimeCellType As InputMan.CalendarGcDateTimeCellType = _
DirectCast(GcCalendarGrid1.Content(DateTime.Today).Rows(1).Cells(0).CellType, InputManCell.CalendarGcDateTimeCellType)
' コレクションの先頭のボタンを削除
If GcDateTimeCellType.SideButtons.Count > 0 Then
GcDateTimeCellType.SideButtons.RemoveAt(0)
End If
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan;
InputManCell.CalendarGcDateTimeCellType gcDateTimeCellType =
(InputManCell.CalendarGcDateTimeCellType)gcCalendarGrid1.Content[DateTime.Today].Rows[1].Cells[0].CellType;
// コレクションの先頭のボタンを削除
if (gcDateTimeCellType.SideButtons.Count > 0)
{
gcDateTimeCellType.SideButtons.RemoveAt(0);
}
デザイン機能
コントロールの機能のため、InputManCellでサポートされません。
外観の変更
各ボタンオブジェクトの
Positionプロパティを使用するとボタンの表示位置を設定することができます。
それぞれの位置でのボタンの並びはコレクション内のインデックスによって決定されます。コレクション内のインデックスが小さい順に左から右へボタンが配置されます。
ボタンのサイズはセルの高さと各ボタンオブジェクトのWidthプロパティによって設定されます。
サイドボタンの背景色は各ボタンオブジェクトの
BackColorプロパティで、前景色は
ForeColorプロパティで設定します。背景色と前景色はセルのFlatStyleプロパティがFlat、およびPopupの場合のみ有効となります。

(図) FlatStyle プロパティがFlatの場合

(図) FlatStyle プロパティがPopupの場合
プロパティによる動作の割り当て
各サイドボタンでは押されたときの動作をプロパティで割り当てることができます。
サイドボタンへのスピン動作の割り当て
SideButtonクラスは、サイドボタンにスピン動作を割り当てるBehaviorプロパティを提供します。また、Behaviorプロパティに設定した値により、IntervalプロパティとTextプロパティの初期値が自動的に変更されます。
Behaviorプロパティに設定可能な値は以下の通りです。
Behaviorの値 |
説明 |
Intervalプロパティの初期値 |
Textプロパティの初期値 |
None |
スピン動作を割り当てません。 |
0 |
なし |
SpinUp |
スピンアップ(値を増加)の動作を割り当てます。 |
60 |
"+" |
SpinDown |
スピンダウン(値を減少)の動作を割り当てます。 |
60 |
"-" |
サイドボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。
シンボルボタンへのスピン動作の割り当て
SymbolButtonクラスは、サイドボタンにスピン動作を割り当てるBehaviorプロパティを提供します。また、Behaviorプロパティに設定した値により、Intervalプロパティ、SymbolプロパティおよびSymbolDirectionプロパティの初期値が自動的に変更されます。
Behaviorプロパティに設定可能な値は以下の通りです。
Behaviorの値 |
説明 |
Intervalプロパティの初期値 |
Symbolプロパティの初期値 |
SymbolDirectionプロパティの初期値 |
None |
スピン動作を割り当てません。 |
0 |
None |
Left |
SpinUp |
スピンアップ(値を増加)の動作を割り当てます。 |
60 |
Arrow |
Up |
SpinDown |
スピンダウン(値を減少)の動作を割り当てます。 |
60 |
Arrow |
Down |
シンボルボタンに割り当てられるスピン機能の詳細については「
スピンボタンの最適化」を参照してください。
関連トピック